package com.urea.system.domain.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.urea.common.annotation.Excel;
import com.urea.common.core.domain.BaseEntity;
import com.urea.system.domain.PayInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单统计对象
 * 
 * @author liuzd
 * @date 2023-08-01
 */
@Data
@ToString
public class OrderStatisticsVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    @ApiModelProperty("订单号")
    private String orderNo;

    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;
    @ApiModelProperty("用户级别")
    @Excel(name = "用户级别")
    private String userType;
    @ApiModelProperty("用户余额")
    @Excel(name = "用户余额")
    private String balance;
    @ApiModelProperty("所属代理商")
    @Excel(name = "所属代理商")
    private String agentName;
    @ApiModelProperty("所属门店")
    @Excel(name = "所属门店")
    private String storeName;
    @ApiModelProperty("所属车队")
    @Excel(name = "所属车队")
    private String fleetName;
    @ApiModelProperty("订单类型")
    @Excel(name = "订单类型")
    private String payMethod;
    @ApiModelProperty("订单状态")
    @Excel(name = "订单状态")
    private String status;

    /** 订单金额 */
    @Excel(name = "订单金额")
    @ApiModelProperty("订单金额")
    private BigDecimal amount;

    /** 退款金额 */
    @Excel(name = "退款金额")
    @ApiModelProperty("退款金额")
    private BigDecimal refundAmount;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

//    private PayInfo payInfo;
    // 自定义信息 json
    private String attach;
    @ApiModelProperty("总订单数")
    private Long allCount;
    @ApiModelProperty("加注订单")
    private Long fillCount;
    @ApiModelProperty("充值订单")
    private Long rechargeCount;
    @ApiModelProperty("加注金额")
    private BigDecimal fillAmount;
    @ApiModelProperty("充值金额")
    private BigDecimal rechargeAmount;
//    @ApiModelProperty("上月订单")
    private Long lastMonthCount ;



}
